{
	// useState它接收一个任意类型的数据，返回一个数组。
	// 数组的第一个元素的类型与入参一致；
	// 数组的第二个元素是一个函数
	//     函数的入参类型和返回值类型与useState的入参一致
	// react
	// const [num, setNum] = useState(0)
	// const [str, setStr] = useState('ab')

	// 泛型
	// 元组： [T, (newValue:T)=>T]
	function useState<T>(value: T): [T, (newValue: T) => T] {
		const setValue = (value: T) => {
			// xxxxx
			return value
		}

		return [ value, setValue ]
	}

	const [ str, setStr ] = useState('123')

	const [ num, setNum ] = useState(123)
}
